﻿var _util = null;
usuarioId = "";
btnSalvarDadosGeraisIsFire = false;
Curriculo.Url = 'Views/Cadastros/Curriculo.aspx/';

function Curriculo() {
    this.CurriculoId = 0;
    this.UsuarioId = 0;
    this.DisponibilidadeHorario = 0;
    this.PretencaoSalarial = 0;

    this.Salvar = function () {
    
        var json = JSON.stringify(this);
        var alerta = new Alert();
        alerta.Name = "erroGeral";
        //eS.UrlPadrao + 'Views/Cadastros/Curriculo.aspx/SalvarCurriculo',
        $.ajax({
            url: eS.UrlPadrao + Curriculo.Url + 'SalvarCurriculo',
            type: "post",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            data: "{ curriculo: " + json + "}",
            success: function (e) {
                if (e.d && e.d.AlertType != undefined) {
                    alerta.Type = e.d.AlertType;
                    for (var i in e.d.Messages) {
                        alerta.AddMessage(e.d.Messages[i]);
                    }
                    if (e.d.Show && e.d.Show == true) {
                        alerta.Show();
                    }
                } else {
                    if (e.responseText) {
                        alerta.Type = 2;
                        alerta.AddMessage(e.responseText);
                    } else {
                        alerta.Type = 1;
                        alerta.AddMessage("Retorno inválido, o objeto retornado não está em um formato correto")
                    }
                    alerta.Show();
                }

            },
            error: function (e) {
                alerta.Type = 1;
                alerta.AddMessage(e.responseText);
                alerta.Show();
            }
        });
    }
    return this;
}

$(function () {
    $("input[id$='btnSalvarDadosGerais']").click(function (e) {
        e.preventDefault();
        if (btnSalvarDadosGeraisIsFire)
            return false;
        var curriculo = new Curriculo();
        curriculo.CurriculoId = parseInt($("input[id$='CurriculoId']").val(), 10);
        curriculo.DisponibilidadeHorario = parseInt($("select[id$='DisponibilidadeHorario'] option:selected").val(), 10);
        curriculo.PretencaoSalarial = parseFloat($("input[id$='PretencaoSalarial']").val().replace(",", "."));
        curriculo.UsuarioId = 0;

        var alerta = new Alert();
        alerta.Name = "erroGeral";
        if (isNaN(curriculo.CurriculoId)) {
            alerta.AddMessage("Curriculo inválido");
        }
        if (isNaN(curriculo.DisponibilidadeHorario)) {
            alerta.AddMessage("Disponibilidade de horário inválido");
        }
        if (isNaN(curriculo.PretencaoSalarial)) {
            alerta.AddMessage("Pretenção salarial inválida");
        }
        if (alerta.HasMessage()) {
            alerta.Type = AlertType.Error;
            alerta.Show();
            return false;
        }
        curriculo.CurriculoId = curriculo.CurriculoId == 0 ? -1 : curriculo.CurriculoId;
        curriculo.DisponibilidadeHorario = curriculo.DisponibilidadeHorario == 0 ? -1 : curriculo.DisponibilidadeHorario;
        curriculo.PretencaoSalarial = curriculo.PretencaoSalarial == 0 ? -1 : curriculo.PretencaoSalarial;
        curriculo.Salvar();
        return false;
    });

    $("input[id$='btnAdionaCargo']").click(function (e) {
        e.preventDefault();
        var cargoId = $("input[id$='CargoId']").val();
        var curriculoId = $("input[id$='CurriculoId']").val();
        var alerta = new Alert();
        alerta.Name = "erroGeral";
        if (!cargoId || cargoId == "") {
            alerta.AddMessage("Cargo inválido");
        }
        if (!curriculoId || curriculoId == "") {
            alerta.AddMessage("Curriculo inválido");
        }
        if (alerta.HasMessage()) {
            alerta.Type = AlertType.Error;
            alerta.Show();
            return;
        }
        // eS.UrlPadrao + 'Views/Cadastros/Curriculo.aspx/AddCargoUsuario'
        $.ajax({
            url: eS.UrlPadrao + Curriculo.Url + 'AddCargoUsuario',
            type: "post",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            data: "{curriculoId: " + curriculoId.toString() + ", cargoId: " + cargoId.toString() + "}",
            success: function (e) {
                if (e.d && e.d.AlertType != undefined) {
                    $("tr[CargoCurriculoId='" + cargoId + "$" + curriculoId + "']:first").remove();
                    alerta.Type = e.d.AlertType;
                    for (var i in e.d.Messages) {
                        alerta.AddMessage(e.d.Messages[i]);
                    }
                    if (e.d.Show && e.d.Show == true) {
                        alerta.Show();
                    }
                    var idUsuario = usuarioId;

                    var tbody = "<tr CargoCurriculoId='" + cargoId + "$" + curriculoId + "'><td>" + $("input[id$='NomeCargo']").val() +
                    "</td><td><input type='button' id='btnRemoveCargo' onclick='RemoveItemCargo(" + cargoId + "," + curriculoId +
                        ", this)' class='btn btn-danger' value='remover'/></td></tr>";


                    $('table[id$="gridCargoPretendido"] tr:last').after(tbody);
                    $("input[id$='CargoId']").val("");
                    $("input[id$='NomeCargo']").val("");
                } else {
                    if (e.responseText) {
                        alerta.Type = 2;
                        alerta.AddMessage(e.responseText);
                    } else {
                        alerta.Type = 1;
                        alerta.AddMessage("Retorno inválido, o objeto retornado não está em um formato correto")
                    }
                    alerta.Show();
                }

            },
            error: function (e) {
                alerta.Type = 1;
                alerta.AddMessage(e.responseText);
                alerta.Show();
            }
        });
        return false;
    });
});

function RemoveItemCargo(cargoId, curriculoId, item) {
    var alerta = new Alert();
    alerta.Name = "erroGeral";
    //eS.UrlPadrao + 'Views/Cadastros/Curriculo.aspx/RemoveCargoUsuario'
    $.ajax({
        url: eS.UrlPadrao + Curriculo.Url + 'RemoveCargoUsuario',
        type: "post",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: "{cargoId: " + cargoId.toString() + ", curriculoId: " + curriculoId.toString() + "}",
        success: function (e) {
            if (e.d && e.d.AlertType != undefined) {
                alerta.Type = e.d.AlertType;
                for (var i in e.d.Messages) {
                    alerta.AddMessage(e.d.Messages[i]);
                }
                if (e.d.Show && e.d.Show == true) {
                    alerta.Show();
                }
                $(item).parent().parent().remove();
            } else {
                if (e.responseText) {
                    alerta.Type = 2;
                    alerta.AddMessage(e.responseText);
                } else {
                    alerta.Type = 1;
                    alerta.AddMessage("Retorno inválido, o objeto retornado não está em um formato correto")
                }
                alerta.Show();
            }

        },
        error: function (e) {
            alerta.Type = 1;
            alerta.AddMessage(e.responseText);
            alerta.Show();
        }
    });
}

function getItemCargo(ul, item) {

    var inner_html = '<a><div class="list_item_container"><div class=""><strong>Cargo:</strong> ' +
                            item.Nome + '</div></div></a>';
    return $("<li style='width:350px'></li>")
            .data("item.autocomplete", item)
            .append(inner_html)
            .appendTo(ul);
}

function getErrorCargo(e) {
    var _alert = new Alert();
    _alert.Name = "erroGeral";
    _alert.Type = AlertType.Error;
    _alert.AddMessage(e.d ? e.d : e.responseText);
    _alert.Show();
}
function selectedItemCargo(event, ui, context) {
    var item = ui.item && ui.item.value ? ui.item : context;
    if (item.CargoId) {
        $("input[id$='CargoId']").val(item.CargoId.toString(10))
    }
}